<!DOCTYPE html>
<!--名称空间-->
<!--suppress ALL-->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Thymeleaf3的语法使用</title>
</head>
<body>

<h2 style="color: lightseagreen"> 1. 设置当前元素的文本内容，语法： th:text="${属性字段}"</h2>
<!--th:text 设置当前元素的文本内容，常用，优先级不高-->
<p th:text="${thText}"/>
<p th:utext="${thUText}"/>


<h2 style="color: lightseagreen"> 2. 设置当前元素的value值,语法： th:value="${属性字段}" </h2>
<!--th:value 设置当前元素的value值，常用，优先级仅比th:text高-->
<input type="text" th:value="${thValue}" size="35"/>



<!--th:each 遍历列表，常用，优先级很高，仅此于代码块的插入-->
<!--th:each 修饰在div上，则div层重复出现，若只想p标签遍历，则修饰在p标签上-->
<h2 style="color: lightseagreen">3. 遍历列表,语法： th:text="${message}" th:each="message : ${集合对象}" </h2>
<div th:each="message : ${thEach}"> <!-- 遍历整个div-p，不推荐-->
    <p th:text="${message}"/>
</div>
<div> <!--只遍历p，推荐使用-->
    <p th:text="${message}" th:each="message : ${thEach}"/>
</div>


<!--th:if 条件判断，类似的有th:switch，th:case，优先级仅次于th:each, 其中#strings是变量表达式的内置方法-->
<h2 style="color: lightseagreen">4. 条件判断, 语法： th:if="${not #strings.isEmpty(属性字段)}"</h2>
<p th:text="${thIf}" th:if="${not #strings.isEmpty(thIf)}"></p>

<!--th:insert 把代码块插入当前div中，优先级最高，类似的有th:replace，th:include，~{} ：代码块表达式 -->
<p><h2 style="color: lightseagreen"> 5. 代码块插入,语法：th:insert="~{代码块的文件路径::代码块别名}" </h2></p>
<div th:insert="~{grammar/common::thCommon}"></div>


<!--th:object 声明变量，和*{} 一起使用-->
<div th:object="${thObject}">
    <h2 style="color: lightseagreen">6. 使用选择变量表达式取值, 语法： *{属性字段} </h2>
    <p>id(编号): <span th:text="*{id}"/></p><!--th:text="${thObject.id}"-->
    <p>thName(名称): <span th:text="*{thName}"/></p><!--${thObject.thName}-->
    <p>desc(描述): <span th:text="*{desc}"/></p><!--${thObject.desc}-->
</div>
<!-- 上述等同于-->
<div>
    <h2 style="color: lightseagreen">7. 使用变量表达式取值，语法： ${对象.属性字段} </h2>
    <p>id(编号): <span th:text="${thObject.id}"></span></p>
    <p>thName(名称):<span th:text="${thObject.thName}"></span></p>
    <p>desc(描述): <span th:text="${thObject.desc}"></span></p>
</div>

<!-- th:field 属性-->
<div>
    <h2 style="color: lightseagreen">8. 使用th:field 属性，需要th:object先绑定对象，语法： th:field="*{属性字段}" </h2>
    <div th:object="${thObject}">
        描述: <input type="text" th:field="*{desc}" size="35">  <br>
    </div>
</div>


</body>
</html>